/*
 * Copyright (c) 2018. 玺得（深圳）科技有限公司.保留所有权利. http://www.pi-top.com/ 玺得（深圳）科技有限公司保留所有代码著作权.如有任何疑问请访问官方网站与我们联系. 代码只针对特定需求定制编码，不得在未经允许或授权的情况下对外传播扩散.恶意传播者，法律后果自行承担. 本代码仅用于pps-cloud系统.
 */
package com.pitop.staff.entity;

import com.alibaba.fastjson.JSON;
import com.pitop.factory.entity.Factory;
import lombok.Data;

import java.util.List;

/**
 * 员工信息 的实体类
 *
 * @author pi-top
 */
@Data
public class Staff implements java.io.Serializable {

    private Long id;//数据库字段:id  属性显示:

    private String code;//数据库字段:code  属性显示:唯一编码

    private String name;//数据库字段:name  属性显示:姓名

    private String jobnumber;//数据库字段:jobnumber  属性显示:工号

    private String factoryCode;//书备件库字段:factoryCode  工厂编码

    private String phone;//数据库字段:phone  属性显示:电话

    private String gender;//数据库字段:gender  属性显示:性别

    private String address;//数据库字段:address  属性显示:地址

    private String state;//数据库字段:state  属性显示:状态 入职 hire，离职 leave

    private java.util.Date hiredate;//数据库字段:hiredate  属性显示:入职时间

    private java.util.Date hiredateBegin;//数据库字段:hiredate  属性显示:入职时间
    private java.util.Date hiredateEnd;//数据库字段:hiredate  属性显示:入职时间
    private java.util.Date createTime;//数据库字段:createTime  属性显示:创建时间

    private java.util.Date createTimeBegin;//数据库字段:createTime  属性显示:创建时间
    private java.util.Date createTimeEnd;//数据库字段:createTime  属性显示:创建时间
    private java.util.Date updateTime;//数据库字段:updateTime  属性显示:更新时间

    private java.util.Date updateTimeBegin;//数据库字段:updateTime  属性显示:更新时间
    private java.util.Date updateTimeEnd;//数据库字段:updateTime  属性显示:更新时间
    private Integer ver;//数据库字段:ver  属性显示:版本


    private Factory factory; //工厂

    /**
     * staff 转成vo对象
     *
     * @return StaffVO 对象
     */
    public StaffVO toStaffVO() {
        String json = JSON.toJSONString(this);
        return JSON.parseObject(json, StaffVO.class);
    }

    /**
     * staff集合 转成vo集合
     *
     * @param staffList
     * @return
     */
    public static List<StaffVO> toStaffVOList(List<Staff> staffList) {
        String json = JSON.toJSONString(staffList);
        return JSON.parseArray(json, StaffVO.class);
    }

}
